// /**
//  * 遍历树
//  * @param tree 树
//  * @param targetLevel 目标层级
//  * @param uniqueValue 唯一值

import { arrayToFlat } from "./index";

//  */
const operateOnTreeLevel = (tree, location, key, callback) => {
  // 辅助函数，用于递归遍历树
  const traverse = (node, level) => {
    if (level === Number(location)) {
      let newNode = { ...node };
      // 检查当前节点是否具有唯一值
      console.log(node);

      if (node.key === key) {
        console.log(key);
        newNode = callback(node);
        // 这里可以添加你想要的操作，比如修改节点、删除节点等
      }
      console.log(newNode);

      return newNode;
    } else {
      // 递归遍历子节点
      return {
        ...node,
        children: arrayToFlat(
          node.children.map((child) => {
            return traverse(child, level + 1);
          })
        ),
      };
    }
  };

  // 开始遍历树
  return traverse(tree, 0);
};
export default operateOnTreeLevel;
